CloudWatch Logs설치하여 EC2의 로그를 저장하기

CloudWatch Logs설치하여 EC2의 로그를 저장하기

Clock Icon2022.04.19

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

소개

안녕하세요! 클래스메소드 금상원 입니다. 이번 블로그에서는 CloudWatch Logs설치하여 EC2의 로그를 저장해보도록 하겠습니다.

CloudWatch Logs란?

Amazon EC2 인스턴스, AWS CloudTrail, Route 53 및 다른 원본에서 시스템, 애플리케이션 및 사용자 지정 로그 파일을 모니터링, 저장 및 액세스할 수 있습니다.

확장성이 뛰어난 단일 서비스에서 사용하는 모든 시스템, 애플리케이션 및 AWS 서비스에서 로그를 중앙 집중화 하며 로그를 쉽게 보거나 특정 오류 코드 또는 패턴이 있는지 검색하고, 특정 필드를 기반으로 필터링 하여 향후 분석을 위해 안전하게 보관할 수 있습니다.

기능에 대해서

  • 로그 데이터 쿼리
  • Amazon EC2 인스턴스에서 로그 모니터링
  • AWS CloudTrail 기록 이벤트 모니터링
  • 로그 보존
  • 로그 데이터 아카이브
  • Route 53 DNS 쿼리 로그

요금에 대해서

EC2인스턴스에 CloudWatch Logs를 설치하고 저장해보기

사전준비

  • VPC x1
  • Public Subnet x1
  • Public Routing Table x1
  • InternetGateway x1
  • EC2 (Apache 등 미들웨어 설치) x1
  • IAM Role (Policy : CloudWatchAgentServerPolicy) x1

EC2인스턴에서 CloudWatch Logs 설치

로그를 내보내기 위해 CloudWatch Logs를 설치 해보도록 하겠습니다.

sudo su -

먼저 루트 유저로 변경해줍니다.

sudo yum update -y

yum을 업데이트 해줍니다.

sudo yum install -y awslogs

CloudWatch Agent를 설치해줍니다.

로그 내보내기 설정

설치가 정상적으로 완료가 되었다면 아래의 설정을 통해 원하는 로그를 내보내도록 하겠습니다.

/etc/awslogs/awslogs.conf 

위의 경로 에서 「awslogs.conf」 의 파일을 편집합니다. 편집 명령어는 vi awslogs.conf 입니다.

[/var/log/httpd/access_log]
datetime_format = %d/%b/%Y:%H:%M:%S %z
file = /var/log/httpd/access_log
buffer_duration = 60000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = /var/log/httpd/access_log

[/var/log/httpd/error_log]
datetime_format = %d/%b/%Y:%H:%M:%S %z
file = /var/log/httpd/error_log
buffer_duration = 60000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = /var/log/httpd/error_log

위의 코드를 추가 해주시면 됩니다. (Apache의 로그를 내보내고 있습니다.)

위의 코드에 대해 간단히 설명 하자면

  • datetime_format : 타임스탬프가 로그에서 추출되는 방법을 지정합니다.
  • file : CloudWatch Logs에 푸시하고 싶은 로그 파일을 지정합니다.
  • buffer_duration : 로그 이벤트를 일괄 처리하는 기간을 지정합니다.
  • log_stream_name : 대상 로그 스트림을 지정합니다.
  • initial_position : 데이터 읽기를 시작할 지점을 지정합니다.
  • log_group_name : 대상 로그 그룹을 지정합니다.

자세한 내용은 아래의 링크에서 확인해 주세요.

/etc/awslogs/awscli.conf  

위의 경로에서 「awscli.conf」[default] 아래의 region 을 변경하여 로그가 저장되는 리젼을 변경 해줍니다. 편집 명령어는 vi awscli.conf 입니다.

(! 기본적으로 us-east-1 로 되어있기 때문에 로그의 저장소가 버지니아 북부로 설정 되어 있습니다.)

logging 활성화 해보기

위의 설정이 왼료되었으면 다시 home/ec2-user 로 이동합니다.

「Amazon Linux2가 아닌경우」

sudo service awslogs start
sudo chkconfig awslogs on

「Amazon Linux2인 경우」

sudo systemctl start awslogsd
sudo systemctl enable awslogsd.service

위의 명령어들을 시작하여 logging을 활성화 해줍니다.

로그가 잘 들어 왔는지 확인하기 위해 서비스에 「CloudWatch」 를 검색한후 「로그 그룹」 탭 에서 각각의 로그를 확인 해주세요.

  • /var/log/messages
  • /var/log/httpd/access_log
  • /var/log/httpd/error_log

마무리

이번 블로그에서는 CloudWatch Logs를 설치하여 EC2의 로그를 저장해보았습니다. 평소에 EC2의 로그를 수집하고 싶으신 분들께 조금이나마 도움이 되었으면 좋겠습니다.

참고 자료

본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.